#include <iostream>

using namespace std;

class Dog;  //前向引用声明，告诉编译器我有定义这个类，定义在后面
class Cat;
class Object  //提供纯虚函数接口的
{
public:
	Object()
	{
		cout<<"object被构造了"<<endl;
	}
	virtual void compare(Dog &dog)=0; //定义一个纯虚函数
	virtual void show()=0;
	
};

class Dog:public Object
{
public:
	 Dog(int _age)
	 {
		 age=_age;
	 }
	 void compare(Dog &dog)  //实现纯虚函数，根据狗的特点自己去写比较方法的代码
	 {
		if(this->age>dog.age)
			cout<<"你的狗年龄大"<<endl;
		else if(this->age<dog.age)
			cout<<"你的狗年龄小"<<endl;
		else
			cout<<"你的狗年龄跟别人的一样"<<endl;
	 }
	 void show()
	 {
		 cout<<"狗自己实现了show方法"<<endl;
	 }
private:
	int age;
	float weight;
};


int main()
{
	//Object obj;   错误，抽象类无法创建对象
	Dog dog(5);
	Dog dog1(7);
	dog.compare(dog1);
}

